﻿// MT517




using Little.Soldier.SWIFT;
using Little.Soldier.SWIFT.Definition;
using System.Collections.Generic;
using System.ComponentModel;

namespace Little.Soldier.SWIFT.Messages.Category5
{
  public class MT517 : SwiftMessage
  {
    private static SwiftMessageDefinition MessageDefinition;
    private static SwiftTagSequenceDefinition U0002;
    private static SwiftTagDefinition U0003;
    private static SwiftTagSubItemDefinition U0004;
    private static SwiftTagDefinition U0005;
    private static SwiftTagSubItemDefinition U0006;
    private static SwiftTagSubItemDefinition U0007;
    private static SwiftTagDefinition U0008;
    private static SwiftTagSubItemDefinition U000E;
    private static SwiftTagSubItemDefinition U000F;
    private static SwiftTagChoiceDefinition U0010;
    private static SwiftTagDefinition U0011;
    private static SwiftTagSubItemDefinition U0012;
    private static SwiftTagSubItemDefinition U0013;
    private static SwiftTagDefinition U0014;
    private static SwiftTagSubItemDefinition U0015;
    private static SwiftTagSubItemDefinition U0016;
    private static SwiftTagSubItemDefinition U0017;
    private static SwiftTagSubItemDefinition U0018;
    private static SwiftTagDefinition U0019;
    private static SwiftTagSubItemDefinition U001A;
    private static SwiftTagSubItemDefinition U001B;
    private static SwiftTagSubItemDefinition U001C;
    private static SwiftTagSubItemDefinition U001D;
    private static SwiftTagSubItemDefinition U001E;
    private static SwiftTagSubItemDefinition U001F;
    private static SwiftTagSubItemDefinition U007F;
    private static SwiftTagSubItemDefinition U0080;
    private static SwiftTagSubItemDefinition U0081;
    private static SwiftTagChoiceDefinition U0082;
    private static SwiftTagDefinition U0083;
    private static SwiftTagSubItemDefinition U0084;
    private static SwiftTagSubItemDefinition U0086;
    private static SwiftTagDefinition U0087;
    private static SwiftTagSubItemDefinition U0088;
    private static SwiftTagSubItemDefinition U0089;
    private static SwiftTagSubItemDefinition U008A;
    private static SwiftTagDefinition U008B;
    private static SwiftTagSubItemDefinition U008C;
    private static SwiftTagSubItemDefinition U008D;
    private static SwiftTagDefinition U008E;
    private static SwiftTagSubItemDefinition U008F;
    private static SwiftTagSubItemDefinition U0090;
    private static SwiftTagSubItemDefinition U0091;
    private static SwiftTagSequenceDefinition U0092;
    private static SwiftTagDefinition U0093;
    private static SwiftTagSubItemDefinition U0094;
    private static SwiftTagChoiceDefinition U0095;
    private static SwiftTagDefinition U0096;
    private static SwiftTagSubItemDefinition U0097;
    private static SwiftTagSubItemDefinition U0098;
    private static SwiftTagDefinition U0099;
    private static SwiftTagSubItemDefinition U009A;
    private static SwiftTagSubItemDefinition U009B;
    private static SwiftTagSubItemDefinition U009C;
    private static SwiftTagDefinition U009D;
    private static SwiftTagSubItemDefinition U009E;
    private static SwiftTagSubItemDefinition U009F;
    private static SwiftTagDefinition U0001U0002;
    private static SwiftTagSubItemDefinition U0002U0002;
    private static SwiftTagDefinition U0003U0002;
    private static SwiftTagSubItemDefinition U0004U0002;

    [Description("General Information")]
    public MT517.SequenceAClass SequenceA
    {
      get
      {
        return new MT517.SequenceAClass((SwiftElement) this, 0, false);
      }
    }

    public MT517()
      : base(true)
    {
    }

    public MT517(SwiftMessage message)
      : base(message)
    {
    }

    internal override SwiftMessageDefinition MsgDefinition()
    {
      return MT517.MessageDefinition;
    }

    protected override void InitSwiftMessageDefinition()
    {
      MT517.MessageDefinition = new SwiftMessageDefinition("MT517", "Trade Confirmation Affirmation");
      MT517.U0002 = new SwiftTagSequenceDefinition("SequenceA", "General Information");
      MT517.U0003 = new SwiftTagDefinition("StartOfBlock_A_16R", "Start Of Block");
      MT517.U0003.TagName = ":16R:GENL";
      MT517.U0004 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT517.U0004.Mandatory = false;
      MT517.U0003.Elements.Add((SwiftDefinitionElement) MT517.U0004);
      MT517.U0002.Elements.Add((SwiftDefinitionElement) MT517.U0003);
      MT517.U0005 = new SwiftTagDefinition("Reference_A_20C", "Senders Reference");
      MT517.U0005.TagName = ":20C::";
      MT517.U0006 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT517.U0005.Elements.Add((SwiftDefinitionElement) MT517.U0006);
      MT517.U0007 = new SwiftTagSubItemDefinition("Reference", "Reference");
      MT517.U0005.Elements.Add((SwiftDefinitionElement) MT517.U0007);
      MT517.U0002.Elements.Add((SwiftDefinitionElement) MT517.U0005);
      MT517.U0008 = new SwiftTagDefinition("FunctionOfTheMessage_A_23G", "Function Of the Message");
      MT517.U0008.TagName = ":23G:";
      MT517.U000E = new SwiftTagSubItemDefinition("Function", "Function");
      MT517.U0008.Elements.Add((SwiftDefinitionElement) MT517.U000E);
      MT517.U000F = new SwiftTagSubItemDefinition("Subfunction", "Subfunction");
      MT517.U000F.Mandatory = false;
      MT517.U0008.Elements.Add((SwiftDefinitionElement) MT517.U000F);
      MT517.U0002.Elements.Add((SwiftDefinitionElement) MT517.U0008);
      MT517.U0010 = new SwiftTagChoiceDefinition("Choice", "");
      MT517.U0010.Mandatory = false;
      MT517.U0010.Multiple = true;
      MT517.U0011 = new SwiftTagDefinition("Date_A_98A", "Preparation Date");
      MT517.U0011.TagName = ":98A::";
      MT517.U0012 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT517.U0011.Elements.Add((SwiftDefinitionElement) MT517.U0012);
      MT517.U0013 = new SwiftTagSubItemDefinition("Date", "Date");
      MT517.U0011.Elements.Add((SwiftDefinitionElement) MT517.U0013);
      MT517.U0010.Elements.Add((SwiftDefinitionElement) MT517.U0011);
      MT517.U0014 = new SwiftTagDefinition("DateTime_A_98C", "Preparation Date");
      MT517.U0014.TagName = ":98C::";
      MT517.U0015 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT517.U0014.Elements.Add((SwiftDefinitionElement) MT517.U0015);
      MT517.U0016 = new SwiftTagSubItemDefinition("DateTime", "DateAnd Time");
      MT517.U0017 = new SwiftTagSubItemDefinition("Date", "Date");
      MT517.U0016.Elements.Add((SwiftDefinitionElement) MT517.U0017);
      MT517.U0018 = new SwiftTagSubItemDefinition("Time", "Time");
      MT517.U0016.Elements.Add((SwiftDefinitionElement) MT517.U0018);
      MT517.U0014.Elements.Add((SwiftDefinitionElement) MT517.U0016);
      MT517.U0010.Elements.Add((SwiftDefinitionElement) MT517.U0014);
      MT517.U0019 = new SwiftTagDefinition("DateTime_A_98E", "Trade Date/Time");
      MT517.U0019.TagName = ":98E::";
      MT517.U001A = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT517.U0019.Elements.Add((SwiftDefinitionElement) MT517.U001A);
      MT517.U001B = new SwiftTagSubItemDefinition("DateTimeDecimalsAndUTCIndicator", "Trade Date/Time");
      MT517.U001C = new SwiftTagSubItemDefinition("DateTimeDecimals", "Trade Date/Time");
      MT517.U001D = new SwiftTagSubItemDefinition("DateTime", "Date\\Time");
      MT517.U001E = new SwiftTagSubItemDefinition("Date", "Date");
      MT517.U001D.Elements.Add((SwiftDefinitionElement) MT517.U001E);
      MT517.U001F = new SwiftTagSubItemDefinition("Time", "Time");
      MT517.U001D.Elements.Add((SwiftDefinitionElement) MT517.U001F);
      MT517.U001C.Elements.Add((SwiftDefinitionElement) MT517.U001D);
      MT517.U007F = new SwiftTagSubItemDefinition("Decimals", "Time");
      MT517.U007F.Mandatory = false;
      MT517.U001C.Elements.Add((SwiftDefinitionElement) MT517.U007F);
      MT517.U001B.Elements.Add((SwiftDefinitionElement) MT517.U001C);
      MT517.U0080 = new SwiftTagSubItemDefinition("UTCIndicatorRecord", "Date\\Time");
      MT517.U0080.Mandatory = false;
      MT517.U0081 = new SwiftTagSubItemDefinition("UTCIndicator", "Indicator");
      MT517.U0080.Elements.Add((SwiftDefinitionElement) MT517.U0081);
      MT517.U001B.Elements.Add((SwiftDefinitionElement) MT517.U0080);
      MT517.U0019.Elements.Add((SwiftDefinitionElement) MT517.U001B);
      MT517.U0010.Elements.Add((SwiftDefinitionElement) MT517.U0019);
      MT517.U0002.Elements.Add((SwiftDefinitionElement) MT517.U0010);
      MT517.U0082 = new SwiftTagChoiceDefinition("Choice", "");
      MT517.U0082.Multiple = true;
      MT517.U0083 = new SwiftTagDefinition("Party_A_95P", "Party");
      MT517.U0083.TagName = ":95P::";
      MT517.U0083.Multiple = true;
      MT517.U0084 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT517.U0083.Elements.Add((SwiftDefinitionElement) MT517.U0084);
      MT517.U0086 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Indentifier Code");
      MT517.U0083.Elements.Add((SwiftDefinitionElement) MT517.U0086);
      MT517.U0082.Elements.Add((SwiftDefinitionElement) MT517.U0083);
      MT517.U0087 = new SwiftTagDefinition("Party_A_95R", "Party");
      MT517.U0087.TagName = ":95R::";
      MT517.U0087.Multiple = true;
      MT517.U0088 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT517.U0087.Elements.Add((SwiftDefinitionElement) MT517.U0088);
      MT517.U0089 = new SwiftTagSubItemDefinition("DataSourceScheme", "Data Source Scheme");
      MT517.U0087.Elements.Add((SwiftDefinitionElement) MT517.U0089);
      MT517.U008A = new SwiftTagSubItemDefinition("ProprietaryCode", "Proprietary Code");
      MT517.U0087.Elements.Add((SwiftDefinitionElement) MT517.U008A);
      MT517.U0082.Elements.Add((SwiftDefinitionElement) MT517.U0087);
      MT517.U008B = new SwiftTagDefinition("Party_A_95Q", "Party");
      MT517.U008B.TagName = ":95Q::";
      MT517.U008B.Multiple = true;
      MT517.U008C = new SwiftTagSubItemDefinition("Qualifier", "");
      MT517.U008B.Elements.Add((SwiftDefinitionElement) MT517.U008C);
      MT517.U008D = new SwiftTagSubItemDefinition("NameAndAddress_95Q", "Name And Address");
      MT517.U008B.Elements.Add((SwiftDefinitionElement) MT517.U008D);
      MT517.U0082.Elements.Add((SwiftDefinitionElement) MT517.U008B);
      MT517.U0002.Elements.Add((SwiftDefinitionElement) MT517.U0082);
      MT517.U008E = new SwiftTagDefinition("StatusCode_A_25D", "Linked Message");
      MT517.U008E.TagName = ":25D::";
      MT517.U008E.Mandatory = false;
      MT517.U008F = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT517.U008E.Elements.Add((SwiftDefinitionElement) MT517.U008F);
      MT517.U0090 = new SwiftTagSubItemDefinition("DataSource", "Data Source Scheme");
      MT517.U008E.Elements.Add((SwiftDefinitionElement) MT517.U0090);
      MT517.U0091 = new SwiftTagSubItemDefinition("StatusCode", "Number");
      MT517.U008E.Elements.Add((SwiftDefinitionElement) MT517.U0091);
      MT517.U0002.Elements.Add((SwiftDefinitionElement) MT517.U008E);
      MT517.U0092 = new SwiftTagSequenceDefinition("SequenceA1", "Linkages");
      MT517.U0092.Multiple = true;
      MT517.U0093 = new SwiftTagDefinition("StartOfBlock_A1_16R", "Start Of Block");
      MT517.U0093.TagName = ":16R:LINK";
      MT517.U0094 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT517.U0094.Mandatory = false;
      MT517.U0093.Elements.Add((SwiftDefinitionElement) MT517.U0094);
      MT517.U0092.Elements.Add((SwiftDefinitionElement) MT517.U0093);
      MT517.U0095 = new SwiftTagChoiceDefinition("Choice", "");
      MT517.U0095.Mandatory = false;
      MT517.U0095.Multiple = true;
      MT517.U0096 = new SwiftTagDefinition("NumberIdentification_A1_13A", "Linked Message");
      MT517.U0096.TagName = ":13A::";
      MT517.U0096.Mandatory = false;
      MT517.U0097 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT517.U0096.Elements.Add((SwiftDefinitionElement) MT517.U0097);
      MT517.U0098 = new SwiftTagSubItemDefinition("NumberId", "Number Id");
      MT517.U0096.Elements.Add((SwiftDefinitionElement) MT517.U0098);
      MT517.U0095.Elements.Add((SwiftDefinitionElement) MT517.U0096);
      MT517.U0099 = new SwiftTagDefinition("NumberIdentification_A1_13B", "Linked Message");
      MT517.U0099.TagName = ":13B::";
      MT517.U0099.Mandatory = false;
      MT517.U009A = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT517.U0099.Elements.Add((SwiftDefinitionElement) MT517.U009A);
      MT517.U009B = new SwiftTagSubItemDefinition("DataSource", "Data Source Scheme");
      MT517.U0099.Elements.Add((SwiftDefinitionElement) MT517.U009B);
      MT517.U009C = new SwiftTagSubItemDefinition("Number_13B", "Number");
      MT517.U0099.Elements.Add((SwiftDefinitionElement) MT517.U009C);
      MT517.U0095.Elements.Add((SwiftDefinitionElement) MT517.U0099);
      MT517.U0092.Elements.Add((SwiftDefinitionElement) MT517.U0095);
      MT517.U009D = new SwiftTagDefinition("Reference_A1_20C", "Reference");
      MT517.U009D.TagName = ":20C::";
      MT517.U009E = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT517.U009D.Elements.Add((SwiftDefinitionElement) MT517.U009E);
      MT517.U009F = new SwiftTagSubItemDefinition("Reference", "Reference");
      MT517.U009D.Elements.Add((SwiftDefinitionElement) MT517.U009F);
      MT517.U0092.Elements.Add((SwiftDefinitionElement) MT517.U009D);
      MT517.U0001U0002 = new SwiftTagDefinition("EndOfBlock_A1_16S", "End Of Block");
      MT517.U0001U0002.TagName = ":16S:LINK";
      MT517.U0002U0002 = new SwiftTagSubItemDefinition("EndOfBlock", "End Of Block");
      MT517.U0002U0002.Mandatory = false;
      MT517.U0001U0002.Elements.Add((SwiftDefinitionElement) MT517.U0002U0002);
      MT517.U0092.Elements.Add((SwiftDefinitionElement) MT517.U0001U0002);
      MT517.U0002.Elements.Add((SwiftDefinitionElement) MT517.U0092);
      MT517.U0003U0002 = new SwiftTagDefinition("EndOfBlock_A_16S", "End Of Block");
      MT517.U0003U0002.TagName = ":16S:GENL";
      MT517.U0004U0002 = new SwiftTagSubItemDefinition("EndOfBlock", "End Of Block");
      MT517.U0004U0002.Mandatory = false;
      MT517.U0003U0002.Elements.Add((SwiftDefinitionElement) MT517.U0004U0002);
      MT517.U0002.Elements.Add((SwiftDefinitionElement) MT517.U0003U0002);
      MT517.MessageDefinition.Elements.Add((SwiftDefinitionElement) MT517.U0002);
    }

    public class SequenceAClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT517.U0002;
        }
      }

      [Description("Start Of Block")]
      public Tag16R StartOfBlock_A_16R
      {
        get
        {
          return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT517.U0003);
        }
      }

      [Description("Start Of Block")]
      public Tag16R Tag16R_StartOfBlock_A
      {
        get
        {
          return this.StartOfBlock_A_16R;
        }
      }

      [Description("Senders Reference")]
      public Tag20C Reference_A_20C
      {
        get
        {
          return new Tag20C((SwiftElement) this, 0, (SwiftDefinitionElement) MT517.U0005);
        }
      }

      [Description("Senders Reference")]
      public Tag20C Tag20C_Reference_A
      {
        get
        {
          return this.Reference_A_20C;
        }
      }

      [Description("Function Of the Message")]
      public MT517.SequenceAClass.Tag23G FunctionOfTheMessage_A_23G
      {
        get
        {
          return new MT517.SequenceAClass.Tag23G((SwiftElement) this, 0, (SwiftDefinitionElement) MT517.U0008);
        }
      }

      [Description("Function Of the Message")]
      public MT517.SequenceAClass.Tag23G Tag23G_FunctionOfTheMessage_A
      {
        get
        {
          return this.FunctionOfTheMessage_A_23G;
        }
      }

      [Description("Preparation Date")]
      public Tag98A Date_A_98A
      {
        get
        {
          return new Tag98A((SwiftElement) this, 0, (SwiftDefinitionElement) MT517.U0011);
        }
      }

      [Description("Preparation Date")]
      public Tag98A Tag98A_Date_A
      {
        get
        {
          return this.Date_A_98A;
        }
      }

      [Description("Preparation Date")]
      public Tag98C DateTime_A_98C
      {
        get
        {
          return new Tag98C((SwiftElement) this, 0, (SwiftDefinitionElement) MT517.U0014);
        }
      }

      [Description("Preparation Date")]
      public Tag98C Tag98C_DateTime_A
      {
        get
        {
          return this.DateTime_A_98C;
        }
      }

      [Description("Trade Date/Time")]
      public Tag98E DateTime_A_98E
      {
        get
        {
          return new Tag98E((SwiftElement) this, 0, (SwiftDefinitionElement) MT517.U0019);
        }
      }

      [Description("Trade Date/Time")]
      public Tag98E Tag98E_DateTime_A
      {
        get
        {
          return this.DateTime_A_98E;
        }
      }

      [Description("Party")]
      public Tag95P[] Party_A_95P
      {
        get
        {
          int index = -1;
          List<Tag95P> list = new List<Tag95P>();
          int count;
          do
          {
            ++index;
            Tag95P tag95P = new Tag95P((SwiftElement) this, index, (SwiftDefinitionElement) MT517.U0083);
            count = this.ListTags((SwiftElement) tag95P).Count;
            if (count > 0)
              list.Add(tag95P);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Party")]
      public Tag95P[] Tag95P_Party_A
      {
        get
        {
          return this.Party_A_95P;
        }
      }

      [Description("Party")]
      public Tag95R[] Party_A_95R
      {
        get
        {
          int index = -1;
          List<Tag95R> list = new List<Tag95R>();
          int count;
          do
          {
            ++index;
            Tag95R tag95R = new Tag95R((SwiftElement) this, index, (SwiftDefinitionElement) MT517.U0087);
            count = this.ListTags((SwiftElement) tag95R).Count;
            if (count > 0)
              list.Add(tag95R);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Party")]
      public Tag95R[] Tag95R_Party_A
      {
        get
        {
          return this.Party_A_95R;
        }
      }

      [Description("Party")]
      public Tag95Q[] Party_A_95Q
      {
        get
        {
          int index = -1;
          List<Tag95Q> list = new List<Tag95Q>();
          int count;
          do
          {
            ++index;
            Tag95Q tag95Q = new Tag95Q((SwiftElement) this, index, (SwiftDefinitionElement) MT517.U008B);
            count = this.ListTags((SwiftElement) tag95Q).Count;
            if (count > 0)
              list.Add(tag95Q);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Party")]
      public Tag95Q[] Tag95Q_Party_A
      {
        get
        {
          return this.Party_A_95Q;
        }
      }

      [Description("Linked Message")]
      public Tag25D StatusCode_A_25D
      {
        get
        {
          return new Tag25D((SwiftElement) this, 0, (SwiftDefinitionElement) MT517.U008E);
        }
      }

      [Description("Linked Message")]
      public Tag25D Tag25D_StatusCode_A
      {
        get
        {
          return this.StatusCode_A_25D;
        }
      }

      [Description("Linkages")]
      public MT517.SequenceAClass.SequenceA1Class[] SequenceA1
      {
        get
        {
          int index = -1;
          List<MT517.SequenceAClass.SequenceA1Class> list = new List<MT517.SequenceAClass.SequenceA1Class>();
          int count;
          do
          {
            ++index;
            MT517.SequenceAClass.SequenceA1Class sequenceA1Class = new MT517.SequenceAClass.SequenceA1Class((SwiftElement) this, index, false);
            count = this.ListTags((SwiftElement) sequenceA1Class).Count;
            if (count > 0)
              list.Add(sequenceA1Class);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("End Of Block")]
      public Tag16S EndOfBlock_A_16S
      {
        get
        {
          return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT517.U0003U0002);
        }
      }

      [Description("End Of Block")]
      public Tag16S Tag16S_EndOfBlock_A
      {
        get
        {
          return this.EndOfBlock_A_16S;
        }
      }

      internal SequenceAClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }

      public Tag95P AddParty_A_95P()
      {
        return new Tag95P((SwiftElement) this, this.Party_A_95P.Length, (SwiftDefinitionElement) MT517.U0083)
        {
          Value = string.Empty
        };
      }

      public void RemoveParty_A_95P(Tag95P tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public Tag95R AddParty_A_95R()
      {
        return new Tag95R((SwiftElement) this, this.Party_A_95R.Length, (SwiftDefinitionElement) MT517.U0087)
        {
          Value = string.Empty
        };
      }

      public void RemoveParty_A_95R(Tag95R tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public Tag95Q AddParty_A_95Q()
      {
        return new Tag95Q((SwiftElement) this, this.Party_A_95Q.Length, (SwiftDefinitionElement) MT517.U008B)
        {
          Value = string.Empty
        };
      }

      public void RemoveParty_A_95Q(Tag95Q tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public MT517.SequenceAClass.SequenceA1Class AddSequenceA1()
      {
        return new MT517.SequenceAClass.SequenceA1Class((SwiftElement) this, this.SequenceA1.Length, true);
      }

      public void RemoveSequenceA1(MT517.SequenceAClass.SequenceA1Class sequence)
      {
        foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
          this.RemoveTag(tag);
      }

      public class Tag23G : SwiftTagWrapper
      {
        public string Value
        {
          get
          {
            return this.GetValue();
          }
          set
          {
            this.SetValue("23G", value);
          }
        }

        internal Tag23G(SwiftElement parent, int index, SwiftDefinitionElement definition)
          : base(parent, index, definition)
        {
        }
      }

      public class SequenceA1Class : SwiftTagSequence
      {
        internal override SwiftDefinitionElement Definition
        {
          get
          {
            return (SwiftDefinitionElement) MT517.U0092;
          }
        }

        [Description("Start Of Block")]
        public Tag16R StartOfBlock_A1_16R
        {
          get
          {
            return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT517.U0093);
          }
        }

        [Description("Start Of Block")]
        public Tag16R Tag16R_StartOfBlock_A1
        {
          get
          {
            return this.StartOfBlock_A1_16R;
          }
        }

        [Description("Linked Message")]
        public Tag13A NumberIdentification_A1_13A
        {
          get
          {
            return new Tag13A((SwiftElement) this, 0, (SwiftDefinitionElement) MT517.U0096);
          }
        }

        [Description("Linked Message")]
        public Tag13A Tag13A_NumberIdentification_A1
        {
          get
          {
            return this.NumberIdentification_A1_13A;
          }
        }

        [Description("Linked Message")]
        public Tag13B NumberIdentification_A1_13B
        {
          get
          {
            return new Tag13B((SwiftElement) this, 0, (SwiftDefinitionElement) MT517.U0099);
          }
        }

        [Description("Linked Message")]
        public Tag13B Tag13B_NumberIdentification_A1
        {
          get
          {
            return this.NumberIdentification_A1_13B;
          }
        }

        [Description("Reference")]
        public Tag20C Reference_A1_20C
        {
          get
          {
            return new Tag20C((SwiftElement) this, 0, (SwiftDefinitionElement) MT517.U009D);
          }
        }

        [Description("Reference")]
        public Tag20C Tag20C_Reference_A1
        {
          get
          {
            return this.Reference_A1_20C;
          }
        }

        [Description("End Of Block")]
        public Tag16S EndOfBlock_A1_16S
        {
          get
          {
            return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT517.U0001U0002);
          }
        }

        [Description("End Of Block")]
        public Tag16S Tag16S_EndOfBlock_A1
        {
          get
          {
            return this.EndOfBlock_A1_16S;
          }
        }

        internal SequenceA1Class(SwiftElement parent, int index, bool createTags)
          : base(parent, index, createTags)
        {
        }
      }
    }
  }
}
